import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class Test {

    public static void main1(String[] args) {
        String data = "one" ;
        int result = 0 ;     // 接收数据的返回值
        switch (data) {
            case "one":
                result = 1 ; // 为result重新赋值
                break ;
            case "two":
                result = 2 ; // 为result重新赋值
                break ;
            default:
                result = -1 ; // 为result重新赋值
                break ;
        }
        System.out.println(result) ;
    }

    public static void main2(String[] args) {
        String data = "one" ;
        int result = switch (data) {
            case "one"->1;
            case "two"->2;
            default->-1;
        };
        System.out.println(result) ;
    }

    public static void main3(String[] args) {
        String data = "one" ;
        int result = switch (data) {
            case "one" : yield 1;
            case "two": yield 2;
            default : yield -1;
        };
        System.out.println(result) ;
    }

    public static void main32(String[] args) {

        var name = "zhangsan";
        var age = 10;
    }
    // 在这段代码中，编译器会⾃动推断出name是⼀个String类型，age是⼀个int类型

    public static void main12(String[] args) {
        Map<String, List<Map<Integer, String>>> complexMap = new HashMap<String,
                        List<Map<Integer, String>>>();

        var complexMap2 = new HashMap<String, List<Map<Integer, String>>>();

    }

//    class OrgCat {
//        public var name;//error
//
//        public var eat(var str) {//error
//
//        }
//
//    }
//    public static void main(String[] args) {
//        var complexMap2 = 10;
//        System.out.println(complexMap2);
//
//        var str = null;//error
//    }

    // Animal 为密封类，然后使⽤ permits 关键字，把继承权限开放给了 Dog 类
//    sealed class Animal permits Dog{
//        public String name;
//        public int age;
//        public void eat() {
//            System.out.println("eat()....");
//        }
//    }
//    //继承的类也要加上密封限制 non-sealed 表⽰不限制
//    non-sealed class Dog extends Animal{
//        @Override
//        public void eat() {
//            System.out.println(this.name+ "正在吃狗粮....");
//        }
//    }

//    sealed class Animal {
//        public String name;
//        public int age;
//        public void eat() {
//            System.out.println("eat()....");
//        }
//    }
//    sealed class Dog extends Animal{
//        @Override       // Sealed class must have subclasses，此时Dog 被 sealed 修饰，那么Dog 必须要有⼦类！！
//        public void eat() {
//            System.out.println(this.name+ "正在吃狗粮....");
//        }
//    }


//    sealed class Animal {
//        public String name;
//        public int age;
//        public void eat() {
//            System.out.println("eat()....");
//        }
//    }
//    non-sealed class Dog extends Animal {
//        @Override
//        public void eat() {
//            System.out.println(this.name + "正在吃狗粮....");
//        }
//    }


//    sealed class Animal permits Dog {
//        public String name;
//        public int age;
//        public void eat() {
//            System.out.println("eat()....");
//        }
//    }
//    non-sealed class PetDog extends Animal {
//
//    }


//    sealed class Animal permits Dog,PetDog {
//        public String name;
//        public int age;
//        public void eat() {
//            System.out.println("eat()....");
//        }
//    }
//    non-sealed class Dog extends Animal {
//        @Override
//        public void eat() {
//            System.out.println(this.name+ "正在吃狗粮....");
//        }
//    }
//    non-sealed class PetDog extends Animal {
//    }

//    interface HelloService {
//        public void sayHello();
//        // 默认⽅法
//        default void saySomething(){
//            syaEngHello();
//            sayHello();
//        };
//        // 私有⽅法
//        private void syaEngHello(){
//            System.out.println("Hello!");
//        }
//    }

//    if (obj instanceof String) {
//        String str = (String) obj;
// ...
//    }


//    if (obj instanceof String str) {// obj是否为String类型，如果是创建临时变量str
//
//    }
}
